第15章 アーキテクチャとは?
ソフトウェアアーキテクトは最高のプログラマ
優れたアーキテクトは以下の2つを行う (Kindle の位置No.2390-2392; まとめ)
方針と詳細を慎重に区別して、方針が詳細を把握することなく、決して依存することがないように、両者を切り離す。
詳細の決定をできるだけ延期・留保できるように、方針をデザインする。
ソフトウェアシステムのアーキテクチャは、それを構築した人がシステムに与えた「形状」である。(Kindle の位置No.2193-2194)
アーキテクチャの形状の目的は、そこに含まれるソフトウェアシステムの開発・デプロイ・運用・保守を容易にすることである。(Kindle の位置No.2195-2197)
そのための戦略
できるだけ長い期間、できるだけ多く選択肢を残す
優れたアーキテクチャがあれば、システムを容易に理解・開発・保守・デプロイできる。(Kindle の位置No.2209)
この章はこのあと「開発」「デプロイ」「運用」「保守」と続く
ソフトウェアをソフトに保つには、できるだけ長い期間、できるだけ多く選択肢を残すことである (Kindle の位置No.2264-2265)
残すべき選択肢とは、重要ではない詳細
方針と詳細
方針:ビジネスルールや手順
詳細:IO・データベース・フレームワーク・通信プロトコルなど
アーキテクトの目的は、方針とは無関係に詳細を決めながら、方針をシステムの最も重要な要素と認識するシステムの形状を作ること (Kindle の位置No.2271-2272)
詳細の決定を延期や留保する
「詳細を気にせずに上位の方針を構築」
決定を遅延できれば、その分だけ適切に作るための情報が数多く手に入る。(Kindle の位置No.2286-2287)
実験もできる例
ここでは、振る舞いの話はしていない